package com.bytedance.frameworks.baselib.network.http;

public class BaseRequestInfo<T extends BaseRequestContext> {
    public static RequestInfoCreator sRequestInfoCreator = new RequestInfoCreatorIMPL();
    public String timingRemoteIP;
    public T requestContext;
    public long requestStartTs;
    public long responseBack;
    public long fetchResponseTs;
    public long requestEnd;
    public int recycleCount;
    public long timingDns;
    public long timingConnect;
    public long timingSsl;
    public long timingSend;
    public long pushTime;
    public long timingReceive;
    public boolean timingIsSocketReused;
    public long timingWaiting;
    public long timingTotal;
    public long timingTotalSendBytes;
    public long timingTotalReceivedBytes;

    public BaseRequestInfo() {

    }

    public static BaseRequestInfo createRequestInfo() {
        return sRequestInfoCreator.create();
    }

    public interface RequestInfoCreator {
        BaseRequestInfo create();
    }
}

